/**
 * @Author: Bobby
 * @Date: 2021-12-30 10:01:42
 * @LastEditTime: 2022-03-22 18:22:32
 * @LastEditors: Bobby
 * @Description:
 * @FilePath: \wms-v2\src\ve\common\components\baseComs\basic\uiTable.js
 * @CIMC-V2
 */
import { exInput, exSwitch, exSetChartColor, exRequestData, exRadioGroup, exInputNumber } from '@ve/common/components/extension'

export default {
  VERSION: '20220408',
  //组件类型
  type: 'uiTable',
  //组件名称
  name: '表格',
  icon: 'table-line',
  svg: 'biaoge',
  //数据别名
  // dataName: 'uiTable_data',
  //子组件列表
  list: [],
  //数据集合 表单 列表等等
  data: {
    formData: {
      '#LIMIT#': 1,
      '#PAGE_SIZE#': 5,
    },
    requestData: {
      count: 0,
      data: [],
    },
  },
  //扩展
  extension: {
    api: exInput('Api接口', ''),
    method: exInput('Method', ''),
    getDataKey: exInput('获取数据Key', ''),
    requestData: exRequestData('自定义参数', []),
    primaryKeyField: {
      type: 'exInput',
      name: '主键字段',
      isSuperior: true,
      value: '',
      tooltip: '表格行数据的主键字段, 多个字段用‘,’分隔',
    },
    keepSelect: {
      type: 'exSwitch',
      name: '保留选中',
      isSuperior: true,
      value: false,
      tooltip: '是否在表格数据刷新之后保留之前的选中项',
    },
    tableColumns: {
      type: 'exTableColumns',
      name: '表头配置',
      value: [
        { visible: true, _type: 'checkbox', title: '全选', type: 'checkbox', width: 80 },
        { visible: true, _type: 'seq', title: '序号', type: 'seq', width: 80 },
        {
          visible: true,
          _type: 'field',
          field: 'name',
          title: '名称',
          sortable: false,
          fixed: '',
          width: '',
          openEdit: false,
          openSearch: false,
          // 编辑模式下渲染组件类型配置
          formModuleType: {
            type: 'uiTableInput',
            model: '',
            addDesabled: false,
            editDesabled: false,
            info: {},
          },
          tipMessage: '', // 提示内容
        },
      ],
    },
    menuConfig: {
      type: 'exTableMenuConfig',
      name: '右键菜单',
      value: [],
    },
    operateMenuConfig: {
      type: 'exTableOperateMenuConfig',
      name: '操作按钮',
      value: [],
      setting: {
        fixed: '', //浮动
      }, //设置操作按钮浮动等功能
    },
    rowStatusConfig: {
      type: 'rowStatusConfig',
      name: '行状态配置',
      value: [],
      isSuperior: true,
    },
    cellStatusConfig: {
      type: 'rowStatusConfig',
      name: '列状态配置',
      value: [],
      isSuperior: true,
    },
    //TODO: 新的列状态配置,目前是和老功能共存的状态,两个都能用,老功能会覆盖新功能
    columnStatusConfig: {
      type: 'columnStatusConfig',
      name: '新列状态配置',
      value: [],
      isSuperior: true,
    },
    pagerEnabled: exSwitch('启用分页', true),
    pageSizes: {
      type: 'exPageSizes',
      name: '分页配置',
      value: [50, 100, 200],
    },
    pageSize: exInput('默认分页', 50),
    clickEdit: {
      type: 'exClickEditTable',
      name: '在线编辑',
      value: {
        open: false,
        method: '',
        tipOpen: true,
        editRules: [],
        editDefault: [],
        editCalculate: { value: '', msg: '' },
        refreshTable: false, // 编辑后刷新表格
        // selectRowField: '', // 选中行字段（用于刷新表格数据后定位到操作行）
        enterNotEditNextRow: false, // 回车是否不编辑下一行
        actions: [], // 编辑后动作列表
      },
    },
    openRevertData: exSwitch('编辑撤销', false),
    // editRules: {
    //   type: 'exEditRulesTable',
    //   name: '校验配置',
    //   value: [],
    // },
    //批次属性
    batchAttribute: {
      type: 'exBatchAttributeTable',
      name: '动态表头',
      isSuperior: true,
      value: {
        open: false,
        // api: '',
        // method: '',
        // data: [
        //   { key: 'LOT_ID', value: 'TEMPLE' },
        //   { key: 'ORG_ID', value: '#ORG_ID#' },
        // ],
      },
    },
    toolBar: exSwitch('开启工具栏', true),
    removeTopBar: exSwitch('移除顶部空隙', false),
    maxHeight: exInputNumber('最大高度', '', 0, 100000000),
    customStyle: exSwitch('自定义样式', false),
    noScrollBar: exSwitch('不显示滚动条', false),
    BgColor: exSetChartColor('背景颜色', ''),
    textColor: exSetChartColor('文字颜色', ''),
    borderColor: exSetChartColor('边框颜色', ''),
    rowHeight: exRadioGroup('行高', 'small', [
      {
        value: 'small',
        label: '紧凑',
      },
      {
        value: 'median',
        label: '中等',
      },
      {
        value: 'large',
        label: '宽松',
      },
    ]),
    //合计配置
    footerMethodConfig: {
      type: 'exTableFooterMethodConfig',
      name: '合计配置',
      value: {
        open: false,
        options: [
          { value: '1', label: '总计' },
          { value: '2', label: '平均' },
        ],
        data: [
          {
            key: '',
            value: '1',
          },
        ], //参数
      },
      isSuperior: true,
    },
    // 上下键切换选中
    udownKeyHandover: { ...exSwitch('上下选中', false, '开启后可通过键盘上键或下键选中数据，触发表格双击事件'), isSuperior: true },
    align: exRadioGroup('对齐方式', 'left', [
      {
        value: 'left',
        label: '居左',
      },
      {
        value: 'center',
        label: '居中',
      },
      {
        value: 'right',
        label: '居右',
      },
    ]),
    // 列编辑模式
    tableColumnEdit: {
      type: 'exTableColumnEdit',
      name: '列编辑',
      value: {
        open: false,
        method: '',
        require: true,
        editColumns: '',
      },
    },
    // 展开行
    expendRow: {
      type: 'exTableExpenRow',
      name: '展开行',
      isSuperior: true,
      value: {
        open: false,
        clickRowTrigger: false,
        api: '',
        method: '',
        getDataKey: '',
        requestData: [
          { key: '#LIMIT#', value: '1' },
          { key: '#PAGE_SIZE#', value: '50' },
        ],
      },
    },
    expandTableColumns: {
      type: 'exTableColumns',
      name: '展开行表头配置',
      isSuperior: true,
      isExpandCol: true,
      value: [
        { visible: true, _type: 'seq', title: '序号', type: 'seq', width: 80 },
        {
          visible: true,
          _type: 'field',
          field: 'name',
          title: '名称',
          sortable: false,
          fixed: '',
          width: '',
          openEdit: false,
          openSearch: false,
          // 编辑模式下渲染组件类型配置
          formModuleType: {
            type: 'uiTableInput',
            model: '',
            addDesabled: false,
            info: {},
          },
          tipMessage: '', // 提示内容
        },
      ],
    },
  },
  //交互
  interaction: [],
  //数据源绑定
  dataSourceBind: {
    sourceId: {
      type: 'exGetDataSource',
      name: '组件ID',
      value: {
        type: 1,
        source: [],
      },
    },
    // dataKey: exInput('数据Key', ''),
    getDataKey: exInput('数据Key', '', '获取数据的 key 的集合，多个 key 用 “,” 分隔，如需获取全部数据则不填写'),
    hasParam: exSwitch('当参数用', false, '默认当数据使用,开启当参数使用'),
  },
}
